

const VIDEO_ERRORS = {
  
    0: '无合适的广告',
    1000: '后端接口调用失败',
    1001: '参数错误',
    1002: '广告单元无效',
    1003: '内部错误',
    1004: '无合适的广告',
    1005: '广告组件审核中',
    1006: '广告组件被驳回',
    1007: '广告组件被封禁',
    1008: '广告单元已关闭',
    9999: '拉取广告失败',
    10000: '广告标识不存在',
}

const VIDEO_CONFIGS = {

    1 : 'adunit-f0965e381ed56c56'
}

let SdkPatform = require("SdkPatform")

class WxPatform extends SdkPatform
{
    constructor()
    {
        super()

        this.mAdvertisings = {}

        this.mId = 1
    }

    requestInit(d)
    {
        wx.showShareMenu()

        wx.onShareAppMessage(
            () =>
            {
                // 用户点击了“转发”按钮

                // const d = this.shareRandomContentById(10)
                // if (d)
                // {
                //     this.trackEvent("share_start", { shareId: (d.channel || 10) })

                //     return {
                //         title: d.title,
                //         //path:"",
                //         query: d.query,
                //         imageUrl: d.img,
                //         success(e)
                //         {
                //             this.onShareSuccess(10)

                //             this.trackEvent("share_success", { shareId: (d.channel || 10) })

                //             Log.d("转发成功。")
                //         },
                //         fail(e)
                //         {
                //             Log.d("转发失败。")
                //         },
                //         complete()
                //         {
                //             Log.d("转发完成。")
                //         }
                //     }
                // }
            }
        )
    }

    requestClose()
    {

    }

    requestLogin(d)
    {

    }

    requestLogout(d)
    {

    }

    requestShare(d)
    {

    }

    onLogin(d)
    {
        this.mData = {}
    }

    onLogout(d)
    {
        this.mData = null

        return true
    }

    onPurchase(d)
    {
        return d
    }

    enableAdvertising()
    {
        return true
    }

    requestAdvertising(i, callback)
    {
        if (!this.mAdvertisings[i])
        {
            const id = VIDEO_CONFIGS[i]

            if (!id)
            {
                callback && callback(false, VIDEO_ERRORS[10000])

                return
            }

            let video = wx.createRewardedVideoAd({ adUnitId: id })

            this.mAdvertisings[i] = video

            video.onClose(
                res =>
                {
                    // 用户点击了【关闭广告】按钮
                    // 小于 2.1.0 的基础库版本，res 是一个 undefined
                    Log.d('>>>>>>>>>>>>>>>>>>>>> 播放次数')
                    if (res && res.isEnded || res === undefined)
                    {
                        callback && callback(true)
                    }
                    else
                    {
                        // 播放中途退出，不下发游戏奖励
                        callback && callback(false)
                    }
                }
            )

            video.onError(
                e =>
                {
                    let detail = e.errCode >= 0 ? VIDEO_ERRORS[e.errCode] : VIDEO_ERRORS[9999]

                    Log.w('WxPatform', '拉取视频失败，errCode: ', e.errCode, ', errMsg: ', e.errMsg, ', detail: ', detail)

                    callback && callback(false, detail)
                }
            )
        }

        this.mAdvertisings[i].load()
            .then(() => this.mAdvertisings[i].show())
            .catch(e => Log.w('play video ad err, error message: ', e.errMsg))
    }
}

export default WxPatform
